GGGGLLLL____4444PPPPAAAASSSSSSSS____0000____SSSSGGGGIIIISSSS, GGGGLLLL____4444PPPPAAAASSSSSSSS____1111____SSSSGGGGIIIISSSS, GGGGLLLL____4444PPPPAAAASSSSSSSS____2222____SSSSGGGGIIIISSSS, and
ffffggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS is part of the SGIS_multisample extension. This
extension provides multisampling, a mechanism for antialiasing all GL
primitives: points, lines, polygons, bitmaps, and images. Multisample
antialiasing is most valuable for rendering polygons, because it requires
no sorting for hidden surface elimination, and it correctly handles
adjacent polygons, object silhouettes, and even intersecting polygons.
If only points or lines are being rendered, the "smooth" antialiasing
mechanism provided by the base GL may result in a higher quality image.
This extension is designed to allow multisample and smooth antialiasing
techniques to be alternated during the rendering of a single scene.
The technique is to sample all primitives multiple times at each pixel.
The color sample values are resolved to a single, displayable color each
time a pixel is updated, so the antialiasing appears to be automatic at
the application level. Because each sample includes depth and stencil
information, the depth and stencil functions perform equivalently to the
single-sample mode.
An additional buffer, called the multisample buffer, is required. Pixel
sample values, including color, depth, and stencil values, are stored in
this buffer. When the frame buffer includes a multisample buffer, it
does not also include separate depth or stencil buffers, even if the
multisample buffer does not store depth or stencil values. Color buffers
(left/right, front/ back, and aux) do coexist with the multisample
buffer, however.
The locations of the sample points are relatively static. They change
only when ffffggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS is called, and are a repeatable function
of the parameter _p_a_t_t_e_r_n. The default pattern GGGGLLLL____1111PPPPAAAASSSSSSSS____SSSSGGGGIIIISSSS is designed
to produce a well antialiased result in a single rendering pass.
Patterns GGGGLLLL____2222PPPPAAAASSSSSSSS____0000____SSSSGGGGIIIISSSS and GGGGLLLL____2222PPPPAAAASSSSSSSS____1111____SSSSGGGGIIIISSSS together specify twice the
number of sample points per pixel. It is intended that a scene be
completely rendered using pattern GGGGLLLL____2222PPPPAAAASSSSSSSS____0000____SSSSGGGGIIIISSSS, then completely
rendered again using GGGGLLLL____2222PPPPAAAASSSSSSSS____1111____SSSSGGGGIIIISSSS. When these two images are averaged
using the accumulation buffer, the result is as if a single pass had been
rendered with a pattern of twice the number of sample points. Patterns
GGGGLLLL____4444PPPPAAAASSSSSSSS____0000____SSSSGGGGIIIISSSS, GGGGLLLL____4444PPPPAAAASSSSSSSS____1111____SSSSGGGGIIIISSSS, GGGGLLLL____4444PPPPAAAASSSSSSSS____2222____SSSSGGGGIIIISSSS, and GGGGLLLL____4444PPPPAAAASSSSSSSS____3333____SSSSGGGGIIIISSSS
together define a pattern of four times the number of sample points. They
can be used to accumulate an image after four complete rendering passes.
NNNNOOOOTTTTEEEESSSS
It is not possible to query the actual sample locations of a pixel.
Some sample locations may lie outside the unit square that is considered
to bound the pixel.
ffffggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS is part of the SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee extension, not part
of the core GL command set. If GGGGLLLL____SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee is included in the
string returned by ffffggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg, when called with argument GGGGLLLL____EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS,
extension SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee is supported by the connection.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ffffggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS is executed
between the execution of ffffggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of